package helper

import (
	"net/http"
	"strings"
)

/**
 * 取访问主机名
 */
func GetHost(req *http.Request) string {

	var hostlist []string = req.Header.Values("X-Forwarded-Host")
	var host string
	if len(hostlist) > 1 {
		host = hostlist[len(hostlist)-1] //取最后一次转发的
	} else if len(hostlist) == 1 {
		host = hostlist[0]
	} else {
		host = ""
	}
	if host != "" {
		hosts := strings.Split(host, ",")
		host = strings.Trim(hosts[len(hosts)-1], " ")
	}

	if host == "" {
		host = req.Host
	}
	return host
}

/**
 * 取域名
 */
func GetDomain(req *http.Request) string {
	scheme := "http://"
	if req.TLS != nil {
		scheme = "https://"
	}
	if strings.Contains(req.Referer(), "https://") {
		scheme = "https://"
	}
	var host string = GetHost(req)
	hosts := strings.Split(host, ":")
	host = hosts[0]
	if hosts[1] == "443" {
		scheme = "https://"
	}
	var w strings.Builder
	w.WriteString(scheme)
	w.WriteString(host)

	return w.String()

}

func SetHeader(w http.ResponseWriter, resp *http.Request) {

	w.Header().Set("Access-Control-Allow-Origin", "*")                                                 //允许访问所有域
	w.Header().Add("Access-Control-Allow-Headers", "Content-Type,x-csrf-token,x-requested-with,token") //header的类型
	w.Header().Set("Access-Control-Allow-Methods", "POST,GET,OPTIONS")
	w.Header().Set("content-type", "application/json") //返回数据格式是json
	// w.Header().Set("Content-Length", resp.Header.Get("Content-Length"))
}
